#define _GNU_SOURCE  // 声明可以使用一些扩展语法 
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>

void *first_thread_func(void *arg)
{
    printf("first线程(%d)执行 \n", gettid());

    return NULL;
}

void *second_thread_func(void *arg)
{
    printf("second线程(%d)执行 \n", gettid());

    return NULL;
}


int main(int argc, char const *argv[])
{
    printf("主线程(%d)执行 \n",gettid());

    // 创建两个子线程
    pthread_t first_thread, second_thread;
    pthread_create(&first_thread, NULL, first_thread_func, NULL);
    pthread_create(&second_thread, NULL, second_thread_func, NULL);
    printf("主线程(%d)又继续执行 pt1=%ld, pt2=%ld\n", gettid(), first_thread, second_thread);
    // 等待子线程执行完成
    pthread_join(first_thread, NULL);
    pthread_join(second_thread, NULL);
    printf("主线程(%d)执行完毕\n", gettid());
    return 0;

}